home *** CD-ROM | disk | FTP | other *** search
/ Apple Reference & Presen…rary 6 (Reseller Edition) / Apple Ref. & Pres. Lib.v6.0.toast / pc / 3-Presentations / Apple Demos / Training / HyperCard 2.0 Training / Intro to HyperCard 2.0 / card_57358.txt < prev    next >
Text File  |  1990-08-24  |  46KB  |  1,251 lines

  1. -- card: 57358 from stack: in.0
  2. -- bmap block id: 52845
  3. -- flags: 0000
  4. -- background id: 51853
  5. -- name: newInHyperTalk
  6. ----- HyperTalk script -----
  7. on closeCard
  8.   lock screen
  9.   put empty into myLine
  10.   put empty into cd fld "Phrase"
  11.   put empty into cd fld "WhatItIs"
  12.   put empty into cd fld "Definition"
  13.   hide cd fld "Examples"
  14.   set scroll of cd fld "Examples" to 0
  15.   set scroll of cd fld "List" to 0
  16.   unlock screen with visual wipe left
  17. end closeCard
  18.  
  19. function getchunk inWord,myDict
  20. put return & inWord & return into inWord
  21. put (number of lines in char 1 to (offset(inWord,myDict)) of myDict)+1 into myLines
  22. if myLines is 1 then
  23.   return empty
  24.   exit getChunk
  25. end if
  26. put line myLines to (number of lines in myDict) of myDict into myStuff
  27. delete char (offset("[",myStuff)) to length(myStuff) of myStuff
  28. return myStuff
  29. end getChunk
  30.  
  31. on v
  32.   set visible of cd fld "ExampleList" to not visible of cd fld "ExampleList"
  33. end v
  34.  
  35. on k
  36.   if not the visible of cd fld "Defs" then
  37.     show cd fld "WhatList"
  38.     show cd fld "Defs"
  39.     show cd fld "ExampleList"
  40.   else
  41.     hide cd fld "WhatList"
  42.     hide cd fld "Defs"
  43.     hide cd fld "ExampleList"
  44.   end if
  45. end k
  46.  
  47.  
  48.  
  49.  
  50. -- part 1 (field)
  51. -- low flags: 01
  52. -- high flags: 2000
  53. -- rect: left=274 top=58 right=109 bottom=463
  54. -- title width / last selected line: 0
  55. -- icon id / first selected line: 0 / 0
  56. -- text alignment: 1
  57. -- font id: 174
  58. -- text size: 18
  59. -- style flags: 0
  60. -- line height: 20
  61. -- part name: Phrase
  62.  
  63.  
  64. -- part 2 (field)
  65. -- low flags: 01
  66. -- high flags: 2007
  67. -- rect: left=44 top=58 right=266 bottom=265
  68. -- title width / last selected line: 0
  69. -- icon id / first selected line: 0 / 0
  70. -- text alignment: 0
  71. -- font id: 174
  72. -- text size: 12
  73. -- style flags: 0
  74. -- line height: 15
  75. -- part name: List
  76. ----- HyperTalk script -----
  77. on mouseUp
  78.   lock screen
  79.   set cursor to watch
  80.   put empty into myLine
  81.   put empty into cd fld "Phrase"
  82.   put empty into cd fld "WhatItIs"
  83.   put empty into cd fld "Definition"
  84.   set scroll of cd fld "Definition" to 0
  85.   hide cd fld "Examples"
  86.   unlock screen with visual wipe left
  87.   lock screen
  88.   put lineNo() into myLine
  89.   put line myLine of me into cd fld "Phrase"
  90.   put line myLine of cd fld "WhatList" into cd fld "WhatItIs"
  91.   --  put line 2 to 40 of getChunk(myLine,cd fld "Defs") into cd fld "Definition"
  92.   put line myLine of cd fld "Defs" into cd fld "Definition"
  93.   put line 2 to 40 of getChunk(myLine,cd fld "ExampleList") into cd fld "Examples"
  94.   set scroll of cd fld "Examples" to 0
  95.   unlock screen with visual wipe right
  96. end mouseUp
  97.  
  98.  
  99.  
  100. function lineNo
  101. if the style of the target is "scrolling" then
  102.   return ((item 2 of the clickloc - item 2 of the rect of the target + the scroll of the target-2)  DIV textheight of the target) +1
  103. else
  104.   return ((item 2 of the clickloc - item 2 of the rect of the target) DIV textheight of the target) +1
  105. end if
  106. end lineNo
  107.  
  108.  
  109.  
  110.  
  111. -- part 3 (field)
  112. -- low flags: 01
  113. -- high flags: 2007
  114. -- rect: left=274 top=130 right=240 bottom=463
  115. -- title width / last selected line: 0
  116. -- icon id / first selected line: 0 / 0
  117. -- text alignment: 0
  118. -- font id: 174
  119. -- text size: 14
  120. -- style flags: 0
  121. -- line height: 18
  122. -- part name: Definition
  123.  
  124.  
  125. -- part 4 (field)
  126. -- low flags: 01
  127. -- high flags: 0000
  128. -- rect: left=274 top=110 right=129 bottom=463
  129. -- title width / last selected line: 0
  130. -- icon id / first selected line: 0 / 0
  131. -- text alignment: 1
  132. -- font id: 174
  133. -- text size: 12
  134. -- style flags: 0
  135. -- line height: 16
  136. -- part name: WhatItIs
  137.  
  138.  
  139. -- part 5 (button)
  140. -- low flags: 00
  141. -- high flags: A004
  142. -- rect: left=275 top=243 right=265 bottom=464
  143. -- title width / last selected line: 0
  144. -- icon id / first selected line: 0 / 0
  145. -- text alignment: 1
  146. -- font id: 174
  147. -- text size: 12
  148. -- style flags: 16384
  149. -- line height: 16
  150. -- part name: EXAMPLES
  151. ----- HyperTalk script -----
  152. on mouseUp
  153.   if cd fld "Phrase" is empty then
  154.     answer "Please select a topic first."
  155.   else
  156.     set the visible of cd fld "Examples" to not the visible of cd fld "Examples"
  157.   end if
  158. end mouseUp
  159.  
  160.  
  161.  
  162. -- part 6 (field)
  163. -- low flags: 81
  164. -- high flags: 2007
  165. -- rect: left=274 top=130 right=240 bottom=463
  166. -- title width / last selected line: 0
  167. -- icon id / first selected line: 0 / 0
  168. -- text alignment: 0
  169. -- font id: 174
  170. -- text size: 12
  171. -- style flags: 0
  172. -- line height: 16
  173. -- part name: Examples
  174. ----- HyperTalk script -----
  175. on mouseUp
  176.   hide me
  177. end mouseUp
  178.  
  179.  
  180.  
  181. -- part 7 (field)
  182. -- low flags: 81
  183. -- high flags: 2007
  184. -- rect: left=265 top=58 right=266 bottom=448
  185. -- title width / last selected line: 0
  186. -- icon id / first selected line: 0 / 0
  187. -- text alignment: 0
  188. -- font id: 174
  189. -- text size: 12
  190. -- style flags: 0
  191. -- line height: 15
  192. -- part name: WhatList
  193. ----- HyperTalk script -----
  194. on mouseUp
  195.   put lineNo() into myLine
  196.   put line myLine of me into cd fld "Phrase"
  197. end mouseUp
  198.  
  199.  
  200.  
  201. function lineNo
  202. if the style of the target is "scrolling" then
  203.   return ((item 2 of the clickloc - item 2 of the rect of the target + the scroll of the target)  DIV textheight of the target) +1
  204. else
  205.   return ((item 2 of the clickloc - item 2 of the rect of the target) DIV textheight of the target) +1
  206. end if
  207. end lineNo
  208.  
  209.  
  210.  
  211.  
  212. -- part 11 (field)
  213. -- low flags: 01
  214. -- high flags: 0000
  215. -- rect: left=0 top=4 right=25 bottom=512
  216. -- title width / last selected line: 0
  217. -- icon id / first selected line: 0 / 0
  218. -- text alignment: 1
  219. -- font id: 174
  220. -- text size: 14
  221. -- style flags: 2304
  222. -- line height: 18
  223. -- part name: 
  224.  
  225.  
  226. -- part 12 (button)
  227. -- low flags: 00
  228. -- high flags: 2000
  229. -- rect: left=448 top=311 right=342 bottom=498
  230. -- title width / last selected line: 0
  231. -- icon id / first selected line: 5233 / 5233
  232. -- text alignment: 1
  233. -- font id: 0
  234. -- text size: 12
  235. -- style flags: 0
  236. -- line height: 16
  237. -- part name: 
  238. ----- HyperTalk script -----
  239. on mouseUp
  240.   lock screen
  241.   go to card "HyperTalk & XCM"
  242.   unlock screen with iris close
  243. end mouseUp
  244.  
  245.  
  246.  
  247. -- part 14 (field)
  248. -- low flags: 81
  249. -- high flags: 2004
  250. -- rect: left=141 top=77 right=248 bottom=388
  251. -- title width / last selected line: 0
  252. -- icon id / first selected line: 0 / 0
  253. -- text alignment: 0
  254. -- font id: 174
  255. -- text size: 14
  256. -- style flags: 0
  257. -- line height: 15
  258. -- part name: INSTRUCTIONS
  259. ----- HyperTalk script -----
  260. on mouseUp
  261.   set the hilite of btn "instructions" to false
  262.   hide me
  263. end mouseUp
  264.  
  265.  
  266. -- part 15 (button)
  267. -- low flags: 00
  268. -- high flags: 0000
  269. -- rect: left=374 top=315 right=337 bottom=446
  270. -- title width / last selected line: 0
  271. -- icon id / first selected line: 0 / 0
  272. -- text alignment: 1
  273. -- font id: 0
  274. -- text size: 12
  275. -- style flags: 0
  276. -- line height: 16
  277. -- part name: Instructions
  278. ----- HyperTalk script -----
  279. on mouseUp
  280.   set the hilite of me to not the hilite of me
  281.   set the visible of cd fld "instructions" to not the visible of cd fld "instructions"
  282. end mouseUp
  283.  
  284.  
  285.  
  286. -- part 10 (field)
  287. -- low flags: 81
  288. -- high flags: 0007
  289. -- rect: left=0 top=266 right=342 bottom=246
  290. -- title width / last selected line: 0
  291. -- icon id / first selected line: 0 / 0
  292. -- text alignment: 0
  293. -- font id: 3
  294. -- text size: 9
  295. -- style flags: 0
  296. -- line height: 12
  297. -- part name: ExampleList
  298. ----- HyperTalk script -----
  299. on closeField
  300.   put the length of me
  301. end closeField
  302.  
  303.  
  304.  
  305. -- part 9 (field)
  306. -- low flags: 81
  307. -- high flags: 0007
  308. -- rect: left=0 top=266 right=342 bottom=226
  309. -- title width / last selected line: 0
  310. -- icon id / first selected line: 0 / 0
  311. -- text alignment: 0
  312. -- font id: 3
  313. -- text size: 9
  314. -- style flags: 0
  315. -- line height: 12
  316. -- part name: Defs
  317. ----- HyperTalk script -----
  318. on mouseUp
  319.   put lineNo() into myLine
  320.   put line myLine of me into cd fld "Phrase"
  321.   put line myLine of cd fld "WhatList" into cd fld "WhatItIs"
  322. end mouseUp
  323.  
  324.  
  325.  
  326. function lineNo
  327. if the style of the target is "scrolling" then
  328.   return ((item 2 of the clickloc - item 2 of the rect of the target + the scroll of the target)  DIV textheight of the target) +1
  329. else
  330.   return ((item 2 of the clickloc - item 2 of the rect of the target) DIV textheight of the target) +1
  331. end if
  332. end lineNo
  333.  
  334.  
  335.  
  336.  
  337. -- part contents for card part 2
  338. ----- text -----
  339. scriptTextStyle
  340. scriptTextFont
  341. scriptTextSize
  342. scriptEditor
  343. debugger
  344. messageWatcher
  345. messageWatching
  346. variableWatcher
  347. variableWatching
  348. stacksInUse
  349. enabled (menu)
  350. name (menu)
  351. enabled (menuItem)
  352. name (menuItem)
  353. checkMark
  354. markChar
  355. textStyle (menuItem)
  356. commandChar
  357. menuMessage
  358. scroll
  359. rectangle
  360. cantPeek
  361. cantAbort
  362. dontSearch (bkgnd)
  363. marked
  364. dontSearch (card)
  365. rectangle
  366. sharedHilite
  367. fixedLineHeight
  368. dontSearch (field)
  369. dontWrap
  370. sharedText
  371. clickChunk
  372. clickLine
  373. clickText
  374. the number of marked cards
  375. the number of menus
  376. the menus
  377. the number of menuItems of¬†<menu>
  378. append
  379. reset menubar
  380. debug checkpoint
  381. delete
  382. enable
  383. disable
  384. open report printing
  385. mark
  386. unmark
  387. show marked cards
  388. print marked cards
  389. print (expression)
  390. print (field)
  391. print card
  392. start Using
  393. stop Using
  394. ask password
  395. ask file
  396. answer file
  397. doMenu itemname
  398. suspendStack
  399. resumeStack
  400. shrink to
  401. stretch from
  402.  
  403. -- part contents for card part 6
  404. ----- text -----
  405. EXAMPLE:
  406. get the name of menu 5
  407.  
  408. This example is used to find out the name of a menu. It could be useful if you change the names of your menus, or even delete and append menus, changing the menubar as the user moves through your stack.
  409.  
  410.  
  411. EXAMPLE:
  412. set the name of menu "Places" to "Lugares"
  413.  
  414. This example changes the name of a menu. In this case, it‚Äôs used to change a menu name from English to Spanish.
  415.  
  416.  
  417. -- part contents for card part 7
  418. ----- text -----
  419. Global Variable
  420. Global Variable
  421. Global Variable
  422. Global Property
  423. Global Property
  424. Global Property
  425. Global Property
  426. Global Property
  427. Global Property
  428. Global Property
  429. Menu Property
  430. Menu Property
  431. Menu Item Property
  432. Menu Item Property
  433. Menu Item Property
  434. Menu Item Property
  435. Menu Item Property
  436. Menu Item Property
  437. Menu Item Property
  438. Card Window Property
  439. Card Window Property
  440. Stack Property
  441. Stack Property
  442. Background Property
  443. Card Property
  444. Card Property
  445. Card Property
  446. Background Button Property
  447. Field Property
  448. Field Property
  449. Field Property
  450. Field Property
  451. Function
  452. Function
  453. Function
  454. Function
  455. Function
  456. Function
  457. Function
  458. Command
  459. Command
  460. Command
  461. Command
  462. Command
  463. Command
  464. Command
  465. Command
  466. Command
  467. Command
  468. Command
  469. Command
  470. Command
  471. Command
  472. Command
  473. Command
  474. Command
  475. Command
  476. Command
  477. Message
  478. Message
  479. Message
  480. Visual Effect
  481. Visual Effect
  482.  
  483. -- part contents for card part 9
  484. ----- text -----
  485. The scriptTextStyle property sets the style of the text displayed in the script editor.
  486. The scriptTextFont property sets the font of the text displayed in the script editor.
  487. The scriptTextSize property sets the size of the text displayed in the script editor.
  488. The scriptEditor property is the name of the HyperTalk script editor that is currently in use.
  489. The debugger property is the name of the HyperTalk debugger that is currently in use.
  490. The messageWatcher property is the name of the message lister that‚Äôs currently in use.
  491. The messageWatching property tells whether messages are being watched.
  492. The variableWatcher property is the name of the variable watcher that‚Äôs currently in use.
  493. The variableWatching property tells whether variables are being watched.
  494. The stacksInUse property is a list of all the stacks in the inheritance path‚Äîthat is, all the stacks that will receive a message you send to HyperCard.
  495. The enabled property tells whether a menu can be used or not.  If a menu is not enabled, it is greyed out, so the user can‚Äôt select anything from it.
  496. The name property is the name of a menu.
  497. The enabled property tells whether a menu item can be used or not.  If a menu item is not enabled, it is greyed out, so the user can‚Äôt select it.
  498. The name property is the name of a menu item.
  499. The checkMark property tells whether a menu item is displayed with a checkmark.
  500. The markChar property lets you assign a character to mark a menu item.
  501. The textStyle property is the text style for a menu item.
  502. The commandChar property is the command key equivalent for a menu item.
  503. The menuMessage property is the message HyperCard sends when a menu item is selected.
  504. The scroll property contains the coordinates of the visible portion of the active card window.
  505. The rectangle property is the size of the current window.
  506. The cantPeek property determines whether users can ‚Äúpeek‚Äù at buttons by holding down command-option.
  507. The cantAbort property determines whether users can stop handlers while they‚Äôre executing by pressing command-period.
  508. The dontSearch property determines whether HyperCard will search for text in a background.
  509. The marked property tells whether a card is marked or not. This can be used for complex searching and printing tasks.
  510. The dontSearch property determines whether HyperCard will search for text in a card.
  511. The rectangle property is the card size of the current stack.
  512. The sharedHilite property tells whether a background button‚Äôs hilite is the same for all cards in the background, or changes from card to card.
  513. The fixedLineHeight property determines whether the height of the text in a field is fixed. If fixedLineHeight is true, the line height remains fixed even if the text size is changed.
  514. The dontSearch property determines whether HyperCard will search for text in a field.
  515. The dontWrap property determines whether text will wrap around to stay within the borders of the field, or not wrap, appearing to continue past the edge of the field.
  516. The sharedText property determines whether the text in a field is the same on all cards in the background, or whether it‚Äôs different on each card.
  517. The clickChunk function returns a chunk expression for the word or phrase where the mouse was clicked.
  518. The clickLine function returns the line number in which the mouse was clicked.
  519. The clickText function returns the word or phrase in which the mouse was clicked.
  520. The number of marked cards function returns the number of marked cards in the stack.
  521. The number of menus function returns the number of menus in the menubar.
  522. The menus function returns a list of all the current menus in the menubar, separated by commas.
  523. The number of menuItems function returns the number of items in a menu.
  524. The append command appends a menu item to a menu.
  525. The reset menubar command resets all the menus to the HyperCard default menus.
  526. The debug checkpoint command sets a permanent checkpoint where the debugger will stop when executing a handler.
  527. The delete command deletes a menu item or a menu.
  528. The enable command enables a menu item or a menu.
  529. The disable command disables a menu item or a menu.
  530. The open report printing command prints a report using the report template, or shows the user the Print Report dialog.
  531. The mark command marks all the cards that meet the specified criteria.
  532. The unmark command unmarks all the cards that meet the specified criteria.
  533. The show marked cards command scans quickly through all the marked cards.
  534. The print marked cards command prints all the marked cards.
  535. The print command prints the contents of any HyperTalk expression, including containers.
  536. The print command prints a field, using the current fonts, sizes, and styles.
  537. The print card command prints a rectangular portion of a card.
  538. The start using command inserts a stack, along with all its resources, into the HyperCard inheritance path.
  539. The stop using command removes a stack from the HyperCard inheritance path.
  540. The ask password command shows an Ask dialog with a prompt, and hides the user‚Äôs response.
  541. The ask file command shows the standard Save dialog box.
  542. The answer file command shows the standard Open dialog box.
  543. The doMenu message is sent when the user chooses a menu item. It now includes the menu name, so you can have two different menus with identical menu items that act differently.
  544. The suspendStack message is sent when the user chooses a stack in another window.
  545. The resumeStack message is sent when the user returns to this stack after using a stack in another window.
  546. The shrink to effect appears to collapse the current card image to the top, bottom, or center of the card.
  547. The stretch from effect appears to pull the new card image from the top, bottom, or center of the current card.
  548.  
  549.  
  550.  
  551. -- part contents for card part 10
  552. ----- text -----
  553. [
  554. 1
  555. EXAMPLE:
  556. set scriptTextStyle to "plain"
  557.  
  558. This example would set the text style of the text in the script editor to ‚Äúplain‚Äù, making it easy to read and edit.
  559.  
  560.  
  561. EXAMPLE:
  562. set scriptTextStyle to "extend"
  563.  
  564. This example would set the text style of the text in the script editor to ‚Äúextend‚Äù, stretching it out. This might make it easier to read if 
  565. you‚Äôve been working for a long time.
  566.  
  567. The text style you use in the script editor is a matter of personal preference. Use this command to customize HyperCard to suit your own style.
  568. [
  569. 2
  570. EXAMPLE:
  571. set scriptTextFont to 
  572. "Geneva"
  573.  
  574. This example would set the text font of the text in the script editor to Geneva. Geneva is easy to read, and it‚Äôs standard in all Macintoshes, so anyone else looking at the scripts in your stack would see it just as it was when you were working on it.
  575.  
  576.  
  577. EXAMPLE:
  578. set scriptTextFont to "Futura"
  579.  
  580. This example would set the text font of the text in the script editor to Futura. You might use Futura because you find it easier to read, or you might want to use a font that you have in your LaserWriter.
  581.  
  582. The text font you use in the script editor is a matter of personal preference. Use this command to customize HyperCard to suit your own style.
  583. [
  584. 3
  585. EXAMPLE:
  586. set scriptTextSize to 9
  587.  
  588. This example would set the text size of the text in the script editor to 9 point. 9 point text is somewhat harder to read, but you can fit much more text on the screen. This would be useful for complex handlers, when you want to see as much of the handler as possible at a time.
  589.  
  590.  
  591. EXAMPLE:
  592. set scriptTextSize to 18
  593.  
  594. This example would set the text size of the text in the script editor to 18 point. 18 point text is often easier to read than smaller sizes; however, you can‚Äôt see as much on the screen at one time as you can with smaller sizes.
  595.  
  596. The text size you use in the script editor is a matter of personal preference. Use this command to customize HyperCard to suit your own style.
  597. [
  598. 4
  599. EXAMPLE:
  600. set scriptEditor to 
  601. "CustomEdit"
  602.  
  603. This command tells HyperCard to use a special XCMD to provide you with a different script editor.  
  604.  
  605. The script editor that comes with HyperCard is an XCMD; however, if you‚Äôd like to use a different one, you can use this command to change it. You might choose to use a different script editor that offers different formatting options, for example, or a different set of menus.
  606. [
  607. 5
  608. EXAMPLE:
  609. set debugger to 
  610. "CustomDebug"
  611.  
  612. This command tells HyperCard to use a special XCMD to provide you with a different debugger.  
  613.  
  614. The debugger that comes with HyperCard is an XCMD; however, if you‚Äôd like to use a different one, you can use this command to change it.
  615. [
  616. 6
  617. EXAMPLE:
  618. set messageWatcher to 
  619. "CustomMsgWatch"
  620.  
  621. This command tells HyperCard to use a special XCMD to provide you with a different message lister.  
  622.  
  623. The message lister that comes with HyperCard is an XCMD; however, if you‚Äôd like to use a different one, you can use this command to change it.
  624. [
  625. 7
  626. EXAMPLE:
  627. set messageWatching to true
  628.  
  629. This example tells HyperCard to track all messages, listing them in the message lister for you. Seeing the messages listed as HyperCard receives them can help you determine what‚Äôs triggering a particular action in your stack.  It can also be very educational.
  630.  
  631.  
  632. EXAMPLE:
  633. set messageWatching to false
  634.  
  635. This example tells HyperCard to stop tracking all messages and listing them in the message lister for you. Most of the time, you don‚Äôt need to see the messages being sent to HyperCard. They can distract you and slow down the execution of your scripts. You‚Äôll probably only set messageWatching to true when you‚Äôre trying to trace the inner workings of a handler.
  636. [
  637. 8
  638. EXAMPLE:
  639. set variableWatcher to 
  640. "CustomVarWatch"
  641.  
  642. This command tells HyperCard to use a special XCMD to provide you with a different variable watcher.  
  643.  
  644. The variable watcher that comes with HyperCard is an XCMD; however, if you‚Äôd like to use a different one, you can use this command to change it.
  645. [
  646. 9
  647. EXAMPLE:
  648. set variableWatching to true
  649.  
  650. This example tells HyperCard to keep track of all your variables, listing them in the variable watcher for you. Watching the variables‚Äô contents change can help you see what‚Äôs going on in a handler.
  651.  
  652.  
  653. EXAMPLE:
  654. set variableWatching to false
  655.  
  656. This example tells HyperCard to stop tracking all your variables and listing them in the variable watcher. Most of the time, you don‚Äôt need to see the variables while HyperCard is executing a handler. They can distract you and slow down the execution of your scripts. You‚Äôll probably only set variableWatching to true when you‚Äôre trying to trace the inner workings of a handler.
  657. [
  658. 10
  659. EXAMPLE:
  660. put stacksInUse into cd fld 
  661. "ResourceStacks"
  662.  
  663. This example gets the list of all the stacks in the current inheritance path and puts the list into a card field. This would allow the user to see which stacks‚Äô resources and handlers are available.
  664.  
  665.  
  666. EXAMPLE:
  667. if "Icon Collection" is in stacksInUse then set the icon of btn id 15 to 
  668. "StarryNight"
  669.  
  670. This example checks to see whether a particular stack is in the current inheritance path. If it is, then that 
  671. stack‚Äôs resources (including icons, as in this example) are available for this stack to use, and the handler can go ahead an use an icon from the ‚ÄúIcon Collection‚Äù stack.
  672. [
  673. 11
  674. EXAMPLE:
  675. get the enabled of menu 
  676. "Goodies"
  677.  
  678. This example is used to find out whether the ‚ÄúGoodies‚Äù menu is enabled or not. If the menu is enabled, the container ‚Äúit‚Äù will contain 
  679. “true”.
  680.  
  681.  
  682. EXAMPLE:
  683. set the enabled of menu 
  684. "Chapters" to false
  685.  
  686. This example disables the 
  687. ‚ÄúChapters‚Äù menu. It‚Äôs a good idea to disable menus when it would be inappropriate for the user to select them.
  688. [
  689. 12
  690. EXAMPLE:
  691. get the name of menu 5
  692.  
  693. This example is used to find out the name of a menu. It could be useful if you change the names of your menus, or even delete and append menus, changing the menubar as the user moves through your stack.
  694.  
  695.  
  696. EXAMPLE:
  697. set the name of menu "Places" to "Lugares"
  698.  
  699. This example changes the name of a menu. In this case, it‚Äôs used to change a menu name from English to Spanish.
  700. [
  701. 13
  702. EXAMPLE:
  703. get the enabled of menuItem "Basic Menu" of menu "Menu Cards"
  704.  
  705. This example is used to find out whether the ‚ÄúBasic Menu‚Äù menu item is enabled or not. If the menu item is enabled, the container ‚Äúit‚Äù will contain ‚Äútrue‚Äù.
  706.  
  707.  
  708. EXAMPLE:
  709. set the enabled of menuItem 
  710. "Chapter 5" of menu 
  711. "Chapters" to false
  712.  
  713. This example disables the 
  714. ‚ÄúChapter 5‚Äù menu item. It‚Äôs a good idea to disable menus when it would be inappropriate for the user to select them. In this example, the user hasn‚Äôt completed the prerequisites for Chapter 5, so the handler disables the menu item to keep the user from choosing it by mistake.
  715. [
  716. 14
  717. EXAMPLE:
  718. get the name of menuItem 3 of menu 5
  719.  
  720. This example is used to find out the name of a menu item. It could be useful if you change the names of your menu items, or even delete and append menu items, changing your menus as the user moves through your stack.
  721.  
  722.  
  723. EXAMPLE:
  724. set the name of menuItem 
  725. "Chicago" of menu "Places" to "Guadalajara"
  726.  
  727. This example changes the name of a menu item. In this case, it‚Äôs used to change a menu item from an American city to a city in Mexico.
  728. [
  729. 15
  730. EXAMPLE:
  731. set the checkMark of menuItem "Text Arrows" of menu "Preferences" to true
  732.  
  733. This example places a checkmark next to a menu item. This can be useful to remind a user which option she‚Äôs chosen. For example, here, the checkmark tells the user that the global textArrows property is currently set to true.
  734.  
  735.  
  736. EXAMPLE:
  737. set the checkMark of menuItem "Text Arrows" of menu "Preferences" to false
  738.  
  739. This example removes the checkmark next to a menu item. Here, the checkmark tells the user that the global textArrows property is currently set to false.
  740. [
  741. 16
  742. EXAMPLE:
  743. set the markChar  of menuItem "Purple" of menu 
  744. "Colors" to "‚Ä¢"
  745.  
  746. This example lets you assign a character other than a checkmark to set off a menu choice. In this case, the menu item is marked with a bullet.
  747. [
  748. 17
  749. EXAMPLE:
  750. set the textStyle of menuItem "Strawberry" of menu "Ice Cream" to "Bold"
  751.  
  752. This example sets the text style for a menu item to Bold. This draws attention to the menu item and makes it stand out. Generally, you‚Äôll want to leave the text style of menu items plain.
  753. [
  754. 18
  755. EXAMPLE:
  756. set the commandChar of menuItem "Rocky Road" of menu "Ice Cream" to "R"
  757.  
  758. This example sets the command key equivalent of a menu item. In this case, when the user types Command-R, the menu item 
  759. ‚ÄúRocky Road‚Äù will be activated.
  760. [
  761. 19
  762. EXAMPLE:
  763. set the menuMessage of menuItem "Find in script" of menu "My tools" to 
  764. "searchScript"
  765.  
  766. This example tells HyperCard what handler to execute when a menu item is chosen. In this case, the user has a menu called ‚ÄúMy tools‚Äù. This command sends the message ‚ÄúsearchScript‚Äù to HyperCard when the ‚ÄúFind in script‚Äù item is chosen from the menu.
  767.  
  768.  
  769. EXAMPLE:
  770. set menuMsg of menuItem 
  771. "Eraser" of menu "Paint Menu" to "choose eraser tool"
  772.  
  773. This example chooses a paint tool. The flexibility of HyperCard‚Äôs menu commands allows you to create custom menus with your favorite tools and handlers.
  774. [
  775. 20
  776. EXAMPLE:
  777. get the scroll of the card window
  778.  
  779. This example finds out the top left corner visible area of the card. You can use this when the user is viewing a portion of the card to determine what part of the window they‚Äôre looking at.
  780.  
  781. EXAMPLE:
  782. set the scroll of the card window to 0,0
  783.  
  784. This example resets the scroll of the card to the upper left corner. This way, you can be sure that users will always see the same region of the card when they first come to it.
  785.  
  786. EXAMPLE:
  787. set the scroll of the card window to 100,100
  788.  
  789. This example sets the card scroll to 100 pixels from the left of the card and 100 pixels from the top. You might use this technique to allow a user to click on a button to scroll around a card.
  790. [
  791. 21
  792. EXAMPLE:
  793. set the rectangle of the card window to 
  794. "100,100,150,150"
  795.  
  796. This example resizes the card window. You might want to resize the card window to hide and show parts of the card.
  797. [
  798. 22
  799. EXAMPLE:
  800. set the cantPeek of this stack to true
  801.  
  802. This example sets the cantPeek property of the current stack to true. With cantPeek set to true, the user can‚Äôt use Command-Option to find all the buttons on a card. This is useful in adventure game stacks, for example, when you want the user to figure out where to click. Usually, you‚Äôll want to make your buttons stand out, so the user knows where to click.
  803.  
  804.  
  805. EXAMPLE:
  806. set the cantPeek of this stack to false
  807.  
  808. This example sets the cantPeek property of the current stack to false. With cantPeek set to false, the user can ‚Äúpeek‚Äù at all the buttons on a card by pressing Command-Option. When you want to make sure you don‚Äôt miss any buttons in a stack, you‚Äôll want to set the cantPeek to false.
  809. [
  810. 23
  811. EXAMPLE:
  812. set the cantAbort of this stack to true
  813.  
  814. This example prevents the user from pressing Command-Period to stop a handler while it‚Äôs executing. This command can be very dangerous‚Äîif you set the cantAbort property to true, then execute a handler with an endless loop, you‚Äôll probably have to restart your machine to be able to use HyperCard again.
  815. [
  816. 24
  817. EXAMPLE:
  818. set the dontSearch of this background to true
  819.  
  820. This example tells HyperCard to ignore any text on this background when it‚Äôs searching for text. For example, you might have a stack for keeping track of your video cassettes, with two backgrounds: one listing the contents of each cassette, and one listing your favorite movie stars. You could set the dontSearch of the Movie Star background to true, so any time you Find something, HyperCard will only look in the Cassette Contents, and never in the list of movie stars. This can speed up searches and keep HyperCard from finding irrelevant references.
  821. [
  822. 25
  823. EXAMPLE:
  824. set the marked of this card to true
  825.  
  826. This command sets the marked property of the current card to true. For example, if you have a stack containing all your business contacts, you might have a background button called 
  827. ‚ÄúMark‚Äù. During the day, as you make sales calls, you can use the button to mark any clients that need further attention. At the end of the day, you could print a report of all the marked cards.
  828. [
  829. 26
  830. EXAMPLE:
  831. set the dontSearch of this card to true
  832.  
  833. This example tells HyperCard not to search any of the text on the current card when it‚Äôs performing searches. For example, you might have a stack listing your favorite restaurants. You have added a card to the end listing restaurants you‚Äôd like to try in the future. You could set the dontSearch of this last card to true, so that anytime you use HyperCard‚Äôs Find command, it will skip any of the restaurants listed on this card.
  834. [
  835. 27
  836. EXAMPLE:
  837. get the rectangle of this card
  838.  
  839. This example gets the card size, in pixels, for the current stack. The card size is the same for all cards in a stack. This example can tell you whether the cards in this stack are bigger or smaller than typical cards.
  840.  
  841. EXAMPLE:
  842. set the rect of this card to "0,0,512,342"
  843.  
  844. This example sets the size of the cards in this stack to the size of typical cards‚Äîthe size of a 9‚Äù screen. You might do this in a stack that had been designed for use on larger screens but was later used on 9‚Äù screens.
  845. [
  846. 28
  847. EXAMPLE:
  848. set the sharedHilite of background button "Taxable" to false
  849.  
  850. This example sets the sharedHilite property of a button to false, so its hilite will change from card to card. This example might be used in an invoicing stack containing a card for each customer. Since not all customers would be subject to sales tax, you add a background checkbox button called ‚ÄúTaxable‚Äù. By setting its sharedHilite property to false, the hilite of the button is stored on each card. When you look up a customer in your stack, the button will show whether that customer is subject to sales tax.
  851.  
  852. EXAMPLE:
  853. set the sharedHilite of bg btn "Show Notes" to true
  854.  
  855. This example sets the sharedHilite property of a button to true, so its hilite will not change from card to card. You could use this example in a contact stack with a hidden Notes field. If the ‚ÄúShow Notes‚Äù button is hilited, each time a card is opened, the hidden Notes field will be shown. The hilite of the button will remain the same for all cards of the background.
  856. [
  857. 29
  858. EXAMPLE:
  859. get the fixedLineHeight of card field "Note"
  860.  
  861. This example finds out whether the line height of a card field is fixed.
  862.  
  863. EXAMPLE:
  864. set the fixedLineHeight of fld 
  865. "Address" to false
  866.  
  867. This example can be useful if you have different sizes of text in a single field‚Äîthis way, 9 point text will have an appropriate line height, while 18 point text in the same field will have its own line height.
  868. [
  869. 30
  870. EXAMPLE:
  871. set the dontSearch of background field "Description" to true
  872.  
  873. This example tells HyperCard not to search any of the text in a certain background field when it‚Äôs performing searches. For example, you might have a stack listing the artworks at a museum. Each card lists the title of the piece, the artist‚Äôs name, a list of keywords, and a lengthy description. Since the text in the Description field is so long, searching that field could slow things down considerably. By setting the dontSearch property of that field to true, you tell HyperCard to only search the Title, Artist, and Keyword fields, significantly speeding up searches.
  874.  
  875. EXAMPLE:
  876. set the dontSearch of cd fld 
  877. "Don't Forget" to true
  878.  
  879. This example tells HyperCard not to search the text in this field. In this example, the 
  880. ‚ÄúDon‚Äôt Forget‚Äù field is a card field attached to a customer in a Contact stack. Since it holds a temporary reminder, the user doesn‚Äôt want HyperCard to look at this text during searches.
  881. [
  882. 31
  883. EXAMPLE:
  884. set the dontWrap of card field "Topics" to true
  885.  
  886. This example sets the dontWrap property of a field to true. This way, if any of the topics is too long to fit on one line of the field, it will not wrap to the next line, which could confuse the user, since the second part of the topic name could appear to be a new topic.
  887.  
  888.  
  889. EXAMPLE:
  890. set the dontWrap of card field "Outline" to true
  891.  
  892. In this example, the Outline field contains a writer‚Äôs first pass at a story. By setting the dontWrap property to true, the writer sees just the first few words of each paragraph.
  893. [
  894. 32
  895. EXAMPLE:
  896. set the sharedText of background field "Title" to true
  897.  
  898. This example sets the sharedText property of a field to true, causing the text in the field to be the same on all the cards in this background. This can be useful for any text that stays the same on all cards in a background, such as a title or an instructions field.
  899.  
  900.  
  901. EXAMPLE:
  902. set the sharedText of field 
  903. "Section" to false
  904.  
  905. This example sets the sharedText property of a field to false, so that the text in the field changes from card to card. Most fields will have different text on each card.
  906.  
  907. The sharedText property only applies to background fields.
  908. [
  909. 33
  910. EXAMPLE:
  911. put the clickChunk
  912.  
  913. This example returns the chunk expression telling where the user clicked in a locked field.  For example, it might return ‚Äúchar 18 to 23 of card field 3‚Äù. You can use this technique to find out what word or group of words was clicked by the user.
  914.  
  915. EXAMPLE:
  916. if the textStyle of the clickChunk is bold then go card "Glossary"
  917.  
  918. This example lets you check the style of the word that was clicked. If you have set up your stack so that all the words defined in the glossary are in bold face, HyperTalk can determine whether the word is in the glossary before going to that card.
  919. [
  920. 34
  921. EXAMPLE:
  922. show card field (word 2 of the clickLine)
  923.  
  924. In this example, HyperCard will show a card field corresponding to the line that was clicked.The function ‚Äúthe clickLine‚Äù would return something like 
  925. ‚Äúline 3 of bkgnd field 1‚Äù, and in this example, HyperCard would show card field 3, corresponding to the user‚Äôs click on line 3 of the background field.
  926.  
  927. EXAMPLE:
  928. select the clickLine
  929.  
  930. This example selects the line where the user clicked, hiliting it and providing visual feedback to the user.
  931. [
  932. 35
  933. EXAMPLE:
  934. show card field (the clickText)
  935.  
  936. This example shows a card field with the same name as the text that was clicked.  For example, if the user clicked on the word 
  937. ‚ÄúMacintosh‚Äù, this command would show the card field 
  938. “Macintosh”.
  939.  
  940. EXAMPLE:
  941. go card (the clickText)
  942.  
  943. This example goes to a card with the same name as the text that was clicked. You could use this for a ‚ÄúTable of Contents‚Äù field. The field would list all the cards by name, and the user could click on any card name to view that card.
  944. [
  945. 36
  946. EXAMPLE:
  947. put the number of marked cards into numMarked
  948.  
  949. This example puts the number of marked cards into a variable. You can choose to mark cards for a variety of reasons. For example, in a Contacts stack, you might mark the card of each client you wish to call this week. You could use the number of marked cards function to find out how many calls you need to make this week.
  950. [
  951. 37
  952. EXAMPLE:
  953. if the number of menus = 4 then append menuItem 
  954. "General" to menu "Help"
  955.  
  956. This example adds a new menu to the menubar. First, it checks how many menus there are in the menubar. If there are 4, the Help menu hasn‚Äôt been added yet, so it adds the Help menu to the menubar.
  957.  
  958. EXAMPLE:
  959. if the number of menus < 14 then append "East" to menu 
  960. "Region"
  961. else answer "Sorry, there are too many menus already!"
  962.  
  963. This example adds a new menu to the menubar after checking how many menus there are. If there are 14 menus or more in the menubar already, it tells the user there are too many menus. Otherwise, it adds the new Region menu.
  964. [
  965. 38
  966. EXAMPLE:
  967. put the menus into myMenuList
  968.  
  969. This example puts a comma-separated list of all the menus into a variable. The information can then be used to determine what menus are currently showing, and to find out the names of those menus.
  970.  
  971. EXAMPLE:
  972. on openCard
  973.   if item 5 of the menus is 
  974. "Events" then
  975.     delete menu "Events"
  976.     append menuItem "By Day" to menu "View"
  977.     append menuItem "By Week" to menu "View"
  978.     append menuItem "By Month" to menu "View"
  979.   end if
  980. end openCard
  981.  
  982. This example changes the menus when a card is opened. This example might be used in an Appointment Scheduler stack. When the card is opened, the script checks the menus. If the fifth menu is called Events, it deletes that menu and creates a new one called View.
  983. [
  984. 39
  985. EXAMPLE:
  986. put the number of menuItems in menu 5 into menuLength
  987.  
  988. This examples puts the number of items in menu 5 into a variable. You can use this information to find out whether you‚Äôve already appended a certain menu item, or to find out whether the menu is getting so long that it will be difficult to use.
  989.  
  990. EXAMPLE:
  991. put the number of menuItems in menu "Font" into numFonts
  992.  
  993. This example finds out how many fonts are listed in the font menu.
  994. [
  995. 40
  996. EXAMPLE:
  997. append menuItem "East" to menu "Region"
  998. append menuItem "West" to menu "Region"
  999. append menuItem "North" to menu "Region"
  1000. append menuItem "South" to menu "Region"
  1001.  
  1002. This example adds menu items to the Region menu. The first time you append a menu item to a menu, you create the menu at the same time.
  1003. [
  1004. 41
  1005. EXAMPLE:
  1006. on openStack
  1007.   reset menubar
  1008. end openStack
  1009.  
  1010. This example resets the menubar to HyperCard‚Äôs standard menus when the stack is opened.
  1011. [
  1012. 42
  1013. EXAMPLE:
  1014. if myVar > 100 then debug checkpoint
  1015.  
  1016. This example shows the debugging window if the value of myVar is over 100.
  1017.  
  1018. repeat with x = 1 to 1000
  1019.   doMyOtherHandler
  1020.   debug checkpoint
  1021. end repeat
  1022.  
  1023. This example brings up the debugging window after each execution of the 
  1024. ‚ÄúdoMyOtherHandler‚Äù handler.
  1025. [
  1026. 43
  1027. EXAMPLE:
  1028. delete menu "Help"
  1029.  
  1030. This example deletes the Help menu.
  1031.  
  1032. EXAMPLE:
  1033. on deleteCard
  1034.   delete menuItem (field 
  1035. "Appt Num") of menu 
  1036. "Appointments"
  1037.   pass deleteCard
  1038. end deleteCard
  1039.  
  1040. This example deletes a menu item when a card is deleted. You might use this technique if you were using menus to facilitate navigating between parts of a stack.
  1041. [
  1042. 44
  1043. EXAMPLE:
  1044. on openStack
  1045.   enable menu "Appointments"
  1046. end openStack
  1047.  
  1048. This example enables a menu when the stack is opened. This makes the menu available when the user is in the stack it affects. Enabling and disabling it, instead of adding it and deleting it, is both faster and less confusing for the user, since the order and number of menus in the menubar doesn‚Äôt change.
  1049.  
  1050. EXAMPLE:
  1051. if the visible of fld "Notes" then enable menuItem "Clear Notes" of menu "Contacts"
  1052.  
  1053. This example enables a menu item (allowing users to select that menu item) if the Notes field is visible. You can use this technique to keep users from selecting menu items when the menu‚Äôs action would be inappropriate.
  1054. [
  1055. 45
  1056. EXAMPLE:
  1057. on closeStack
  1058.   disable menu "Appointments"
  1059. end closeStack
  1060.  
  1061. This example disables a menu when the stack is closed. This makes the menu unavailable when the user leaves the stack the menu affects. Enabling and disabling it, instead of adding it and deleting it, is both faster and less confusing for the user, since the order and number of menus in the menubar doesn‚Äôt change.
  1062.  
  1063. EXAMPLE:
  1064. if the visible of fld "Notes" is false then disable menuItem 
  1065. "Clear Notes" of menu 
  1066. "Contacts"
  1067.  
  1068. This example disables a menu item (preventing users from selecting that menu item) if the ‚ÄúNotes‚Äù field is hidden. You can use this technique to keep users from selecting menu items when the menu‚Äôs action would be inappropriate.
  1069. [
  1070. 46
  1071. EXAMPLE:
  1072. on mouseUp
  1073.   open report printing with dialog
  1074.   print all cards
  1075.   close printing
  1076. end mouseUp
  1077.  
  1078. This example shows the user the Report dialog box, allowing the user to make changes or open a report template. Then a report is printed using the template the user picked or created.
  1079.  
  1080.  
  1081. EXAMPLE:
  1082. on mouseUp
  1083.   open report printing with template "Oscar Winners"
  1084.   print marked cards
  1085.   close printing
  1086. end mouseUp
  1087.  
  1088. This example makes use of a precreated report template. It prints a report using information from all the marked cards in the stack.
  1089. [
  1090. 47
  1091. EXAMPLE:
  1092. mark card 1
  1093.  
  1094. This example marks the first card.
  1095.  
  1096. EXAMPLE:
  1097. mark cards where field 
  1098. "State" is "NC"
  1099.  
  1100. This example marks all the cards that have ‚ÄúNC‚Äù in the State field. You can use this technique to print cards that meet certain criteria.
  1101. [
  1102. 48
  1103. EXAMPLE:
  1104. unmark all cards
  1105.  
  1106. This example unmarks all the cards in the stack. It‚Äôs a good idea to do this before marking cards, to make sure you don‚Äôt get any cards that were marked before.
  1107.  
  1108.  
  1109. EXAMPLE:
  1110. mark cards where field 
  1111. "State" contains "N"
  1112. unmark cards where field 
  1113. "State" is "NC"
  1114.  
  1115. This example first marks all the cards with an ‚ÄúN‚Äù in the State field, then unmarks all the ‚ÄúNC‚Äù cards, leaving all the others marked. You can use this technique to simplify searches, first marking cards, then unmarking the exceptions.
  1116. [
  1117. 49
  1118. EXAMPLE:
  1119. mark cards where field 
  1120. "Artist" is "Renoir"
  1121. show marked cards
  1122.  
  1123. In this example, an art teacher has a stack of scanned paintings. The first command marks all the cards showing Renoir paintings. The second command scans through them quickly. The professor can use this as a slide show.
  1124.  
  1125. mark cards where fld 
  1126. "FollowUp" is the date
  1127. show marked cards
  1128.  
  1129. This example is used by a businesswoman. She has a Followup field in her Contact stack. First, she marks all the cards that require her attention today. Then, she uses the show marked cards command to scan through them quickly, jogging her memory and helping her prioritize them.
  1130. [
  1131. 50
  1132. mark cards where fld 
  1133. "FollowUp" is the date
  1134. print marked cards
  1135.  
  1136. This example is used by a businesswoman. First, she marks all the cards that require her attention today. Then, she uses the print marked cards command to print a list of names and phone numbers.
  1137. [
  1138. 51
  1139. EXAMPLE:
  1140. print "There are " & number of marked cards & " marked cards in this stack."
  1141.  
  1142. The print command prints the value of any HyperTalk expression. In this example, the command calculates the number of marked cards and sends the complete phrase to the printer.
  1143. [
  1144. 52
  1145. EXAMPLE:
  1146. print field "Reminder"
  1147.  
  1148. This print command prints the contents of any field, using the current font, size, and style. This is especially useful for printing scrolling fields.
  1149. [
  1150. 53
  1151. EXAMPLE:
  1152. print card from 0,0 to 400,200
  1153.  
  1154. This example prints a portion of a card.
  1155.  
  1156. EXAMPLE:
  1157. print card from topleft of bg btn 1 to bottomright of bg btn 1
  1158.  
  1159. This example prints the portion of the card that falls within the rectangle of a background button. You could use this technique to easily position graphics on a number of cards and print that region of the card.
  1160. [
  1161. 54
  1162. EXAMPLE:
  1163. start using stack "My Tools"
  1164.  
  1165. The start using command adds a stack to the inheritance path.  In this example, the user has a stack called ‚ÄúMy Tools‚Äù, containing a number of icons and utility handlers. The start using command makes all the stack script handlers and all the resources of ‚ÄúMy Tools‚Äù available to other stacks, similar to putting them in the Home stack.
  1166. [
  1167. 55
  1168. EXAMPLE:
  1169. stop using stack "My Tools"
  1170.  
  1171. In this example, the user has a stack called ‚ÄúMy Tools‚Äù, containing a number of icons and utility handlers. The stop using command makes the handlers and resources of 
  1172. ‚ÄúMy Tools‚Äù UNAVAILABLE to other stacks.
  1173. [
  1174. 56
  1175. EXAMPLE:
  1176. ask password "What is your password?"
  1177.  
  1178. This example asks for the user‚Äôs password, supplying a prompt phrase. When the user types in a response, his answer will be hidden.
  1179. [
  1180. 57
  1181. EXAMPLE:
  1182. ask file "Please name the file:"
  1183.  
  1184. In this example, the stack is writing the contents of a field to disk. The command shows the standard Save dialog with a special prompt phrase.
  1185. [
  1186. 58
  1187. EXAMPLE:
  1188. answer file "TEXT", "Please open a file:"
  1189.  
  1190. In this example, the stack is putting the contents of a disk file into a field. The command shows the standard Open dialog with a special prompt phrase. The dialog box will only list text files, as specified in the command.
  1191. [
  1192. 59
  1193. EXAMPLE:
  1194. doMenu "Back", "View"
  1195.  
  1196. doMenu "Back", "Go"
  1197.  
  1198. These examples are from a stack containing scans of archaeological finds. The View menu allows the user to see the object from the back, front, or side.
  1199.  
  1200. However, the user still needs to navigate through the stack. The new doMenu command allows either of the Back menu items to be chosen. The second argument tells HyperCard which menu to use.
  1201. [
  1202. 60
  1203. EXAMPLE:
  1204. on suspendStack
  1205.   disable menu "Appointments"
  1206. end suspendStack
  1207.  
  1208. This example disables a menu when the user clicks on another window. This keeps the user from choosing a menu item when it wouldn‚Äôt be appropriate.
  1209. [
  1210. 61
  1211. EXAMPLE:
  1212. on resumeStack
  1213.   disable menu "Appointments"
  1214. end suspendStack
  1215.  
  1216. This example enables a menu when the user reactivates the stack it belongs to. This allows the user to use this menu after it‚Äôs been disabled.
  1217. [
  1218. 62
  1219. EXAMPLE:
  1220. visual effect shrink to bottom
  1221.  
  1222. This example makes the current card appear to collapse into the top of the new card. This could be useful to simulate a card, graphic, or chart falling over forward.
  1223.  
  1224. EXAMPLE:
  1225. visual shrink to center
  1226.  
  1227. In this example, the current card appears to collapse into the center of the new card. This could be useful to simulate closing a scroll of paper, or to indicate returning to a menu after exploring a subject in more depth.
  1228. [
  1229. 63
  1230. EXAMPLE:
  1231. visual effect stretch from top
  1232.  
  1233. This example makes the new card appear to be pulled out of the top of the current card. This could be useful for simulating pulling down a map or chart, or in an adventure game stack, to indicate moving up.
  1234.  
  1235. EXAMPLE:
  1236. visual stretch from center
  1237.  
  1238. In this example, the new card appears to be pulled from the center of the current card. This could be useful to simulate opening a roll of paper, or to indicate going deeper into a subject.
  1239. [
  1240.  
  1241. -- part contents for card part 11
  1242. ----- text -----
  1243. NEW COMMANDS, FUNCTIONS, & PROPERTIES IN HYPERTALK
  1244.  
  1245. -- part contents for card part 14
  1246. ----- text -----
  1247. Click on a line in the scrolling field to the left‚Äîinformation about that HyperTalk expression will appear to the right. 
  1248.  
  1249. Click the Examples button for an example of how you could use the expression.
  1250.  
  1251. CLICK THIS FIELD TO HIDE IT.